Image Processing and Data Compression
Image processing is employed in various applications such as the electronic conversion of photographic images, the reproduction of graphical information in a printing operation, and the coding and subsequent reconstruction of digital image data in electronic communication systems.
In such applications it is normally required to handle extremely large amounts of data in encoding and reproduction operations, especially color images. As a result, it becomes necessary to use high rates of data transfer if the rate of image conversion and reconstruction is to be kept within acceptable bounds. Consequently, there continues to be much effort expended in finding methods to decrease the amount of data required to effect the processing desired without compromising the quality of the image transmitted or reproduced.
Image processing procedures can be conducted directly upon the picture data elements, or pixels. One of the most common image operations performed on images in the spatial domain, where pixel parameter value is specified as a function of its position with respect to other pixels, is convolution. Convolution operations are particularly common for smoothing boundaries between adjacent pixels or groups of pixels so that, once processed, the likelihood of the presence of visual discontinuities over the image is reduced. However, the penalty is an increase in computational intensity. In spite of this computational overhead, there remain circumstances where convolution procedures are essential.
Before a convolution operation is initiated, the numerical values representing image data are formatted into a matrix in which each of the matrix terms represents and describes a pixel from the original image. The particular type of processing, or filtering, to be performed on the image data is determined by the particular numerical values used as filter terms in the convolution operation. These filter terms are provided in a second matrix commonly denoted as the kernel matrix.
The filtering characteristic of a kernel matrix can be more precisely specified as the number of terms used for a kernel matrix is increased. However, implementation of the convolution procedure becomes more complicated and requires a significantly greater processing capability with correspondingly more processing time with a larger kernel matrix. Because convolution is performed on numerical terms representing pixels (i.e., image data), the operation is commonly designated as being performed in the spatial domain.
FIG. 1 shows the basic operating steps of a convolution performed in the spatial domain. This operation can be represented mathematically as follows: ##EQU1##
The original image data, here shown as H.times.V matrix 10, is convolved at operation 20 with an f.times.f spatial kernel matrix 12 to yield processed image data 14 in the spatial domain. To perform a convolution requires a series of multiplications followed by a summing operation for each processed term obtained. It can be appreciated that the computational effort expended increases geometrically as the sizes of the component matrices increases.